package com.xrit.sunnyday.dao;

import com.xrit.sunnyday.pojo.Role;
import com.xrit.sunnyday.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户管理
 */
public interface    UserDao {

    /**
     * 用户条件分页查询
     * @param queryString
     * @return
     */
    List<User> findAll(String queryString);

    /**
     * 添加用户与角色的关系
     */
    void addUserRole(@Param("userId") Integer UserId, @Param("roleId") Integer RoleId);

    /**
     * 用户添加
     * @param user
     */
    void add(User user);

    /**
     * 查询所有角色
     * @return
     */
    List<Role> findAllRole();

    /**
     * 查询用户与角色是否存在关系
     * @param userId
     * @return
     */
    int findUserRole(Integer userId);

    /**
     * 删除用户
     * @param id
     */
    void deleteById(int id);

    /**
     * 通过id查询用户
     * @param id
     * @return
     */
    User findById(int id);

    /**
     * 通过用户id选中角色id
     * @param userId
     * @return
     */
    List<Integer> findRoleIdByUserId(Integer userId);

    /**
     * 解除关系
     * @param userId
     */
    void deleteUserRole(Integer userId);

    /**
     * 修改用户
     */
    void update(User user);
    /**
     * 根据登陆用户名称查询用户权限信息
     * @param username
     * @return
     */
    User findByUsername(String username);
}
